## 4.8. Handlers

A handler is a piece of code built into Apache that performs certain actions when a file with a particular MIME or handler type is called. For example, a file with the handler type `cgi-script` needs to be executed as a CGI script. This is illustrated in ... /site.filter.

Apache has a number of handlers built in, and others can be added with the `Actions` command (see the next section). The built-in handlers are as follows:

`send-as-is`

  Sends the file as is, with HTTP headers (mod_asis).

`cgi-script`

  Executes the file (mod_cgi). Note that `Options` `ExecCGI` must also be set.

`imap-file`

  Uses the file as an imagemap (mod_imap).

`server-info`

  Gets the server's configuration (mod_info).

`server-status`

  Gets the server's current status (mod_status).

`server-parsed`

  Parses server-side includes (mod_include). Note that `Options` `Includes` must also be set.

`type-map`

  Parses the file as a type map file for content negotiation (mod_negotiation).

`isapi-isa` ( Win32 only)

  Causes ISA DLLs placed in the document root directory to be loaded when their URLs are accessed. `Options` `ExecCGI` must be active in the directory that contains the ISA. Check the Apache documentation, since this feature is under development (mod_isapi).

The corresponding directives follow.

### 4.8.1. AddHandler

>     AddHandler handler-name extension1 extension2 ...
>     Server config, virtual host, directory, .htaccess

`AddHandler` wakes up an existing handler and maps the filename(s) extension1, etc., to handler-name. You might specify the following in your Config file:

>     AddHandler cgi-script cgi bzq

From then on, any file with the extension .cgi or .bzq would be treated as an executable CGI script.

### 4.8.2. SetHandler

>     SetHandler handler-name
>     Directory, .htaccess

This does the same thing as `AddHandler`, but applies the transformation specified by handler-name to all files in the `<Directory>`,`<Location>`, or`<Files>` section in which it is placed, or in the .htaccess directory. For instance, in Chapter 11, "What's Going On?", we write:

>     <Location /status>
>     <Limit get>
>     order deny, allow
>     allow from 192.168.123.1
>     deny from all
>     </Limit>
>     SetHandler server-status
>     </Location>

Copyright © 2001 O'Reilly & Associates. All rights reserved.